home *** CD-ROM | disk | FTP | other *** search
-
- ABE Ascii-Binary Encoding System (Brad Templeton 1989)
-
- (abe/dabe/tinydabe)
-
- ---ABE:[gemdos][version 1000][890616][AR]------------------------------------
-
- This is the GEMDOS [ATARI.ST] variant of the recently posted
- [890604] ABE Encoder/Decoder of Brad Templeton.
-
- The original code was clean enough to allow a straightforward
- porting to the ATARI.ST machines, using either the MW C or
- the [pd] SOZOBON C compiler. MW C generates less code than
- SOZOBON C, but its C-library is not fully compatible with
- the UNIX Clib [BSD4.x, SUN 3.x].
-
- The obvious solution was to replace the faulty items (as, for
- instance, scanf(), sscanf(), etc.) by [dLib 1.2]-analogues,
- written by Dale Schumacher (1988). The latter Clib is [pd].
-
- The [gemdos] version has some new features, intended to support
- a direct desk-top manipulation of the main encoder/decoder (no
- Bourne-like shell needed). However, tinydabe needs a shell.
- The [gemdos] idiosyncrasies are documented below (but NOT in
- the manuals).
-
- As specified by the author, the sources are copyrighted. The
- tiny decoders [source + binaries] are in the public domain and
- so is the [gemdos] version of the binaries, herewith included.
-
- If it turns out that there is a larger interest in the ABE-style
- encoding/decoding, I will eventually produce also a Macintosh
- analogue of the package (intended to work as a substitute for
- BinHex & Co., FULLY PORTABLE ACROSS different OSs).
-
- For further information, support, bug-reports, contact please
- the [original] author, not me. [AR].
-
- ---[Copyright info:][BT]-----------------------------------------------------
-
- [This package] is Copyright 1989 by Brad Templeton. I hereby grant
- a licence for unlimited use of binaries generated by compiling this
- source code.
-
- The source code may be distributed and modified for non-commercial
- purposes, but all copyright messages must be retained.
-
- Changes which alter the file format of ABE files are not permitted
- without the explicit consent of Brad Templeton. I mean it.
-
- No fee is required for the use of the program(s). See the MAN page(s)
- for more details.
-
- Changes which move these programs to other machines and operating
- systems are encouraged. (Fine! [AR].)
-
- Please send any port to a new machine to me at abe@looking.UUCP. [BT].
-
- ---[Disclaimer:][AR]---------------------------------------------------------
-
- "We make no warranty with respect to the contents of this document,
- of the appended manuals, or of the software they describe, and
- disclaim any explicit and/or implied suggestions of usefulness
- for any particular purpose.
-
- Use of the described software presupposes the fact that the user
- is willing to assume all risks, and/or damages, if any, arising
- as a result, even if this is caused by negligence, ignorance or
- some other fault." [AR].
-
- ---[General info:][AR]-------------------------------------------------------
-
- SOURCES [unix][msdos][gemdos]:
-
- AUTHOR: brad@looking.on.ca (Brad Templeton)
- UNIX/MSDOS [originals] posted to:
- Newsgroups: comp.sources.misc
- Reference: [Volume 7, Issues 1-2] = [v07i001/002]
- Moderator: allbery@uunet.UU.NET (Brandon S. Allbery)
- Subject: ABE bullet-proof ascii encoder
- Date: 4 Jun 89 [01:07:26 GMT][01:07:41 GMT]
- Submitted-by: brad@looking.on.ca (Brad Templeton)
- Archive-name: abe/part01, abe/part02
- CURRENT VERSION: [1000]
-
- CONTENTS [SOURCES]:
- - Makefile
- - abe.h
- - abe.c
- - dabe.c
- - tinydabe.c [2 versions: tdABE1.c, tdABE2.c]
- NOTA BENE: Only tinydabe is in the public domain.
- CONTENTS [DOCUMENTATION]:
- - read.me
- - [nroff -man]: abe.1, dabe.1
- - abeformat.
-
- ---[Here is a copy of the original READ.ME as posted by the author:]---------
-
- ABE Ascii-Binary Encoding System by B. Templeton
-
- ABE is a replacement for uuencode/uudecode designed to deal with all the
- typical problems of USENET transmission, along with those of other media.
-
- Advantages are:
-
- Files are often smaller, and compress well.
-
- All printable characters map to themselves, so strings in
- binaries are readable right in the encoding.
-
- All lines are indexed, so sort(1) can repair any random
- scrambling of lines or files. (This can be turned off.)
-
- Extraneous lines (news headers, comments, signatures etc.) are
- ignored, even in the middle of encodings.
-
- A PD tiny decoder is available to include with files for first
- time users.
-
- Files can be split up automatically into equal sized blocks.
-
- Blocks can contain redundant information so that the decoder
- can handle blocks in any order, even with reposted duplicates
- and extraneous articles.
-
- Files with blank regions can be constructed from multi-part
- encodings with damaged blocks.
-
- Multiple files can be placed in one encoding.
-
- The decoder is extremely general and configurable, and supports
- many features not currently found in the encoder, but which other
- encoder writers might fight useful.
-
- In general, a redundant ABE encoding posted to a typical newsgroup over
- a certain article region can be decoded with something as simple as:
-
- dabe /usr/spool/news/comp/binaries/group/3[45]?
-
- Where it doesn't matter much if there are postings in a random order,
- duplicate postings, or inserted articles on other topics. Ie. exactly
- all the things that are a pain about usenet (or mail) binaries.
- (You can usually run dabe right on your entire mailbox.)
-
- The ABE encoder (and decoder) support 3 different encoding formats. One
- uses all 94 printable ASCII characters, the other avoids characters that
- have trouble in ASCII-EBCDIC translations, and the 3rd is the UUENCODE
- format. (ABE can make files decodable by a typical uudecode program.)
-
- ---[AR: Info for the recipients of the comp.sources.misc archive:]---
-
- To build, unpack these files in a directory. Move the tiny decoders,
- td*, to some official place, and edit the Makefile to indicate where
- you put it. (Example, /usr/lib/td%s.) Check the Makefile and defines
- file (abe.h) for any system dependencies, then make.
-
- Install the resulting abe and dabe programs in some bin directory.
- Install abe.1 and dabe.1 in appropriate man directories. Leave the file
- format description around for people to read it. (Possibly modify abe.1
- [= abe.man, AR] to indicate where the file format file is, and where the
- tiny decoders are.)
-
- The main portability concern involves my use of arbitary args to fprintf
- in the various warning and error message routines in abe.c and dabe.c.
- Watch for these. [BT].
-
- ---[end of READ.ME file]-----------------------------------------------------
-
- ---[GEMDOS-ABE info:][AR]----------------------------------------------------
-
- GEMDOS-ABE: ATARI.ST DISTRIBUTION [AR][890616]:
-
- CURRENT VERSION [gemdos][1000] for ATARI.ST
- SOURCES [unix][msdos][gemdos][etcaetera]:
- - tdabe1.c [ASCII-ONLY version]
- - tdabe2.c [EBCDIC version]
- BINARIES [gemdos]:
- - abe.ttp
- - dabe.ttp
- - tdabe1.prg [= tinydabe for ASCII-ONLY format]
- - tdabe2.prg [= tinydabe for EBCDIC format]
- DOCUMENTATION:
- - readme [= this file]
- - abe.man [= formatted abe.1]
- - dabe.man [= formatted dabe.1]
- - abe_fmt.doc [= abeformat]
- CC INFO: This [gemdos] version has been obtained with:
- - MW C 3.0.5 (Mark Williams Comp. 1988) and
- - dLibs 1.2 ([pd], by Dale Schumacher 1988).
-
- GEMDOS [ATARI.ST] IDIOSYNCRASIES:
-
- (0) READ THIS, TOO: the *.man's are NOT updated for [gemdos]!
-
- (1) Both abe.ttp and dabe.ttp admit of UPPERCASE options
- (intended for desk-top only use).
-
- (2) New feature: abe.ttp admits of a new option
-
- output=<path-name>
-
- This sends the encoded output to <path-name> instead of
- stdout. Useful for desk-top only usage and/or (some kind
- of) batch processing.
-
- Example: with
-
- [abe.ttp] o=abe_src.abe \src\abe\*
-
- we make an abe-encoded archive abe_src.abe of the contents
- of the {current-drive:}\src\abe-folder. As specified in
- abe.man, only the first letter of an option is significant.
- To de-code this back we must do
-
- [dabe.ttp] abe_src.abe.
-
- Similarly, with
-
- [abe.ttp] o=tdabe.abe -n +u tdabe1.prg
-
- we make an abe-encoding tdabe.abe (containing tdabe1.prg
- only) that can be also de-coded with
-
- [uudecode] tdabe.abe
-
- on UNIX/MSDOS/ATARI.ST. (For ATARI.STs there is also a
- clever uudecoder [uud.ttp], operating like [uudecode],
- that is also able to cope with multi-file encodings.)
-
- (3) The current [gemdos] version of dabe.ttp updates decodings;
- that is: it does NOT restore the original date-time stamps
- of the abe-encoded files.
-
- (4) Note that tdabe[1-2].prg would need a Bourne-like shell to
- work. Try, for instance, gulam ([pd], by Prabhaker Mateti),
- or msh (Mark Williams Comp.) or the GP-Shell/Craft of Gert
- Poletiek (ComMedia, Amsterdam).
-
- ---[AR]=[Adrian Rezus]=[adriaan@wn2.sci.kun.nl]:[890616]---------------------
-